System.Collections.ObjectModel.KeyedCollection<TKey,TItem>. ChangeItemKey, metoda
Ten artykuł zawiera dodatkowe uwagi dotyczące dokumentacji referencyjnej dla tego interfejsu API.
Metoda ChangeItemKey(TItem, TKey) nie modyfikuje klucza osadzonego w item
elemencie ; po prostu zastępuje klucz zapisany w słowniku odnośników. W związku z tym, jeśli newKey
różni się od klucza osadzonego w item
systemie , nie można uzyskać dostępu item
przy użyciu klucza zwróconego przez GetKeyForItem.
Ta metoda nic nie robi, jeśli KeyedCollection<TKey,TItem> nie ma słownika odnośników.
Każdy klucz w obiekcie KeyedCollection<TKey,TItem> musi być unikatowy. Kluczem nie może być null
.
Ta metoda jest operacją O(1).
Uwagi dotyczące implementatorów
Przed zmodyfikowaniem klucza osadzonego w elemencie należy wywołać tę metodę, aby zaktualizować klucz w słowniku odnośników. Jeśli próg tworzenia słownika wynosi -1, wywołanie tej metody nie jest konieczne.
Nie ujawniaj ChangeItemKey metody jako publicznej metody klasy pochodnej. Nieprawidłowe użycie tej metody powoduje, że słownik odnośników nie jest zsynchronizowany z kluczami elementów. Na przykład ustawienie klucza na null
, a następnie ustawienie go na inną wartość powoduje dodanie wielu kluczy dla elementu do słownika odnośników. Uwidocznij tę metodę wewnętrznie, aby zezwolić na modyfikowanie kluczy elementów: gdy klucz elementu ulegnie zmianie, ta metoda służy do zmiany klucza w słowniku odnośników.